////////////////////////////////////////////////////////////////////////////////

#ifndef _SBULLET_H_
#include "sbullet.h"
#endif

////////////////////////////////////////////////////////////////////////////////

#ifndef _SPLAYER_H_
#include "splayer.h"
#endif

#ifndef _SHAPESFACTORY_H_
#include "shapesfactory.h"
#endif

#ifndef _SERVERENGINE_H_
#include "serverengine.h"
#endif

////////////////////////////////////////////////////////////////////////////////

const float bulletRadius = 8.0;
const float bulletMass = 10.0;
const float bulletResistance = 0.0;
const size_t bulletDamage = 10;
const PE::Circle defBulletShape(bulletRadius);

////////////////////////////////////////////////////////////////////////////////


SBullet::SBullet( int _ID, int _playerID )
: SGameObject(_ID, bulletMass,
              ShapesFactory::GetInstance()->GetBulletShape(),
              bulletResistance),
  m_PlayerID(_playerID)
{
    SetDamage(bulletDamage);
}


////////////////////////////////////////////////////////////////////////////////


SBullet::~SBullet()
{
}


////////////////////////////////////////////////////////////////////////////////


size_t SBullet::GetDamage() const
{
    return m_Damage;
}


////////////////////////////////////////////////////////////////////////////////


void SBullet::SetDamage( size_t _damage )
{
    m_Damage = _damage;
}


////////////////////////////////////////////////////////////////////////////////


int SBullet::GetPlayerID() const
{
    return m_PlayerID;
}


////////////////////////////////////////////////////////////////////////////////


void SBullet::Collision( PhysicalObject& _obj )
{
    static_cast<SGameObject&>(_obj).CollideWithBullet(*this);
}


////////////////////////////////////////////////////////////////////////////////


void SBullet::CollideWithPlayer( SPlayer& _player )
{
    GetEngine().CollideBulletWithPlayer(*this, _player);
}


////////////////////////////////////////////////////////////////////////////////
